The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Among the more popular technology delivery models involves an application service provider hosting applications to which the application service provider's customers or “tenants”, typically business enterprises, connect. The tenants connect to the hosted applications via a communication network interface, such as a web browser. Application service providers, in order to reduce redundancy of resources and maximize utility of existing resources, typically implement a multitenant architecture using a single set of data integrity rules or schema and a single data storage unit to store data of all their tenants.
One of the consequences of using a single schema and a single data storage unit to store data of all tenants of an application service provider is that the volume of data records within a data table inversely impacts performance when accessing data within the data table. As the volume of data rises to a critical point, performance to complete even simple queries, such as a search for a data record, suffers significantly. Additionally, performing resource intensive operations, such as deleting data records, recording statistical collection, or performing operations in bulk, for a tenant may have significant impact on performance of another tenant's operations. Generally, a data table with a large volume of data records is entirely partitioned using one partitioning method. However, such a singular partitioning method fails to remedy the performance issue experienced by an application service provider using single schema with multiple tenants.
For the application service provider, the problem of deteriorating performance is complicated by the fact that each of its tenants has different needs for its data and consequently, operations performed on a tenant's data vary according to the tenant's needs. Thus, a singular partition method applied to the entire data table fails to take into consideration a tenant's particular data needs or the frequency of data change and may even further deteriorate performance for some tenants.
Therefore, the data management field has developed a long-felt but unfulfilled need for an approach that allows an application service provider with a multitenant architecture using single schema to successfully accommodate and consider every tenant's data access needs.